package cn.kgm.user.server.struct;

import cn.kgm.user.dto.dto.UserTypeCustomerSaveDTO;
import cn.kgm.user.dto.dto.UserTypeCustomerUpdateDTO;
import cn.kgm.user.dto.entity.UserTypeCustomer;
import cn.kgm.user.dto.query.UserTypeCustomerPageQuery;
import cn.kgm.user.dto.vo.UserTypeCustomerVO;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * # 技术改变自己 #
 * toC客户
 * @author Kappi
 * @date   2024-04-10 21:13:04
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface UserTypeCustomerMappers {
    UserTypeCustomerMappers INSTANCE = Mappers.getMapper(UserTypeCustomerMappers.class);

    /**
     * 将 UserTypeCustomerSaveDTO 映射成 UserTypeCustomer 对象
     *
     * @param source 源对象
     * @return UserTypeCustomer
     */
    UserTypeCustomer mapToEntity(UserTypeCustomerSaveDTO source);

    /**
     * 将 UserTypeCustomerUpdateDTO 映射成 UserTypeCustomer 对象
     *
     * @param source 源对象
     * @return UserTypeCustomer
     */
    UserTypeCustomer mapToEntity(UserTypeCustomerUpdateDTO source);

    /**
     * UserTypeCustomerPageQuery 映射成 UserTypeCustomer 对象
     *
     * @param source 源对象
     * @return UserTypeCustomer
     */
        UserTypeCustomer mapToEntity(UserTypeCustomerPageQuery source);

    /**
     * UserTypeCustomer 映射成 UserTypeCustomerVO 对象
     *
     * @param source 源对象
     * @return UserTypeCustomerVO
     */
        UserTypeCustomerVO mapToEntity(UserTypeCustomer source);

    /**
     * UserTypeCustomerVO 映射成 UserTypeCustomer 对象
     *
     * @param source 源对象
     * @return UserTypeCustomerVO
     */
        UserTypeCustomer mapToEntity(UserTypeCustomerVO source);

}
